package com.zlx.store.common.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class MybatisPlusConfig {
    /**
     * 这段代码是一个用于配置 MyBatis Plus 的类，它创建了一个名为 "mybatisPlusInterceptor" 的 Bean 对象，并将其添加到 MyBatis Plus 的拦截器链中。
     * 具体来说，它完成以下任务：
     * 创建 MybatisPlusInterceptor 对象，用于扩展 MyBatis Plus 拦截器功能。
     * 创建 PaginationInnerInterceptor 对象，用于分页查询。
     * 设置 PaginationInnerInterceptor 的数据库类型为 MySQL（DbType.MYSQL）。
     * 设置 PaginationInnerInterceptor 在溢出时进行处理（setOverflow(true)），即超过总页数时是否进行溢出处理。
     * 将 PaginationInnerInterceptor 添加到 MybatisPlusInterceptor 的内部拦截器列表中。
     * 将 MybatisPlusInterceptor 对象作为 Bean 返回。
     * 通过配置 MybatisPlusConfig 类并注册 mybatisPlusInterceptor Bean，在您的应用程序中使用 MyBatis Plus 时，将自动应用分页功能。
     * @return
     */
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor(){
        MybatisPlusInterceptor mybatisPlusInterceptor = new MybatisPlusInterceptor();
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor();
        paginationInnerInterceptor.setDbType(DbType.MYSQL);
        paginationInnerInterceptor.setOverflow(true);
        mybatisPlusInterceptor.addInnerInterceptor(paginationInnerInterceptor);
        return mybatisPlusInterceptor;
    }
}
